package com.lg.wechat.business.wxuser.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.enums.IdType;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import com.lg.utils.PageModel;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.lg.common.validate.Insert;
import com.lg.common.validate.Update;
import com.lg.common.validate.Delete;
import com.lg.common.validate.Search;
import com.lg.utils.Page;
/**
 * <p>
 * 
 * </p>
 *
 * @author dl
 * @since 2018-04-02
 */
@TableName("wx_user")
@JsonIgnoreProperties(value={Page.sort,Page.order,Page.rows,Page.total,Page.limit,Page.offset,Page.code},allowSetters=true)
public class WxUser extends PageModel {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户标示
     */
    @TableField("open_id")
    private String openId;

    /**
     * 账户余额
     */
    private BigDecimal money;

    /**
     * 账户积分
     */
    private Integer point;

    /**
     * 唯一邀请码
     */
    @TableField("invite_code")
    private Long inviteCode;

    /**
     * 邀请人id:0主动关注 
     */
    @TableField("parent_id")
    private Long parentId;
    
    @TableField(exist=false)
    private List<Long>  groupIds;

    /**
     * 0：关注 1:取消关注
     */
    private Integer subscribe;

    /**
     * 关注时间
     */
    @TableField("subscribe_time")
    private Date subscribeTime;

    /**
     * 取消关注时间
     */
    @TableField("unsubscribe_time")
    private Date unsubscribeTime;

    /**
     * 用户真实名称
     */
    @TableField("user_name")
    private String userName;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 只有在用户将公众号绑定到微信开放平台帐号后，才会出现该字段
     */
    @TableField("union_id")
    private String unionId;

    /**
     * 用户特权信息，json 数组，如微信沃卡用户为（chinaunicom）
     */
    private String privilege;

    /**
     * 图像
     */
    @TableField("head_img_url")
    private String headImgUrl;

    /**
     * 国家
     */
    private String country;

    /**
     * 城市
     */
    private String city;

    private String province;

    /**
     * 行业工作
     */
    private String job;

    /**
     * 去过的地方
     */
    private String place;

    /**
     * 爱好，兴趣
     */
    private String hobby;

    /**
     * 联系电话
     */
    private String tel;

    /**
     * 精通路线
     */
    @TableField("proficient_line")
    private String proficientLine;

    /**
     * 0:未审核 1：已审核
     */
    @TableField("is_approval")
    private Integer isApproval;

    private String email;

    /**
     * 用户的性别，值为1时是男性，值为2时是女性，值为0时是未知
     */
    private Integer sex;

    /**
     * 个人说明备注
     */
    private String remark;

    /**
     * 创建用户id
     */
    @TableField("user_id_create")
    private Long userIdCreate;

    /**
     * 创建时间
     */
    @TableField("gmt_create")
    private Date gmtCreate;

    /**
     * 创建时间
     */
    @TableField("gmt_modified")
    private Date gmtModified;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }
    public BigDecimal getMoney() {
        return money;
    }

    public void setMoney(BigDecimal money) {
        this.money = money;
    }
    public Integer getPoint() {
        return point;
    }

    public void setPoint(Integer point) {
        this.point = point;
    }
    public Long getInviteCode() {
        return inviteCode;
    }

    public void setInviteCode(Long inviteCode) {
        this.inviteCode = inviteCode;
    }
    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }
    public Integer getSubscribe() {
        return subscribe;
    }

    public void setSubscribe(Integer subscribe) {
        this.subscribe = subscribe;
    }
    public Date getSubscribeTime() {
        return subscribeTime;
    }

    public void setSubscribeTime(Date subscribeTime) {
        this.subscribeTime = subscribeTime;
    }
    public Date getUnsubscribeTime() {
        return unsubscribeTime;
    }

    public void setUnsubscribeTime(Date unsubscribeTime) {
        this.unsubscribeTime = unsubscribeTime;
    }
    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
    public String getUnionId() {
        return unionId;
    }

    public void setUnionId(String unionId) {
        this.unionId = unionId;
    }
    public String getPrivilege() {
        return privilege;
    }

    public void setPrivilege(String privilege) {
        this.privilege = privilege;
    }
    public String getHeadImgUrl() {
        return headImgUrl;
    }

    public void setHeadImgUrl(String headImgUrl) {
        this.headImgUrl = headImgUrl;
    }
    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }
    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }
    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }
    public String getPlace() {
        return place;
    }

    public void setPlace(String place) {
        this.place = place;
    }
    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }
    public String getProficientLine() {
        return proficientLine;
    }

    public void setProficientLine(String proficientLine) {
        this.proficientLine = proficientLine;
    }
   
    
    public Integer getIsApproval() {
		return isApproval;
	}

	public void setIsApproval(Integer isApproval) {
		this.isApproval = isApproval;
	}

	public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
    public Integer getSex() {
        return sex;
    }

    public void setSex(Integer sex) {
        this.sex = sex;
    }
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Long getUserIdCreate() {
        return userIdCreate;
    }

    public void setUserIdCreate(Long userIdCreate) {
        this.userIdCreate = userIdCreate;
    }
    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }
    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }
    

	public List<Long> getGroupIds() {
		return groupIds;
	}

	public void setGroupIds(List<Long> groupIds) {
		this.groupIds = groupIds;
	}

	@Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "WxUser{" +
        "id=" + id +
        ", openId=" + openId +
        ", money=" + money +
        ", point=" + point +
        ", inviteCode=" + inviteCode +
        ", parentId=" + parentId +
        ", subscribe=" + subscribe +
        ", subscribeTime=" + subscribeTime +
        ", unsubscribeTime=" + unsubscribeTime +
        ", userName=" + userName +
        ", nickname=" + nickname +
        ", unionId=" + unionId +
        ", privilege=" + privilege +
        ", headImgUrl=" + headImgUrl +
        ", country=" + country +
        ", city=" + city +
        ", province=" + province +
        ", job=" + job +
        ", place=" + place +
        ", hobby=" + hobby +
        ", tel=" + tel +
        ", proficientLine=" + proficientLine +
        ", isApproval=" + isApproval +
        ", email=" + email +
        ", sex=" + sex +
        ", remark=" + remark +
        ", userIdCreate=" + userIdCreate +
        ", gmtCreate=" + gmtCreate +
        ", gmtModified=" + gmtModified +
        ", groupIds=" + groupIds +
        "}";
    }
}
